#ifndef _UTILS_H_
#define _UTILS_H_

#include "engine.h"


using namespace std;

namespace engine
{
    class UTILS
    {
    public:
        UTILS() {}

    public:
        static const char *loadFile(const char *filePath)
        {

            string mCode;
            ifstream mFile;
            stringstream mStream;
            mFile.exceptions(ifstream::failbit | ifstream::badbit);
            try
            {
                mFile.open(filePath);
                mStream << mFile.rdbuf();
                mFile.close();
                mCode = mStream.str();
                return mCode.c_str();
            }
            catch (...)
            {
                ENGINE_ERROR("ERROR::FILE_NOT_SUCCESFULLY_READ");
            }
            return mCode.c_str();
            // return mCode;
        }

        /*!
        * 读取文件所有文本内容
        *
        * \param path 文件路径
        * \param text 字符串引用
        * \return 如果成功返回true，否则返回false。
        */
        static bool ReadAllText(const string &path, std::string &text)
        {
            std::ifstream ifs(path);
            if (!ifs.is_open())
                return false;

            //读取文件
            std::istreambuf_iterator<char> beg(ifs), end;
            text.assign(beg, end);
            ifs.close();
            return ifs.good();
        }
    };

}
#endif